Computers typically use a package distribution tool to install, update, and remove packages and their dependencies. Examples of package distribution tools include YUM, APT, CONARY®, etc. A package management application, such as PackageKit, can provide an abstract layer over the package distribution tools to unify graphical user interfaces (GUIs) and text mode managers used in these package distribution tools.
A package management application can be used for boot time security updates, automatic installation of files (e.g., clipart), installation of new features (e.g., smart-card readers), allowing unprivileged users to install software, opening unknown file formats, removing dependencies for files, etc. Depending upon a user's privilege level, the user may perform some or all of the above tasks through the package management application.
An administrator of a computer system can specify what a user can and cannot do by setting the user's privilege level. For instance, an administrator can specify that an unprivileged user can update the system and conduct searching, but cannot install or remove packages. The user's privilege level can be set in the user's proxy setting. Conventionally, a user's client has to read the user's proxy setting and relay the proxy setting to a package update daemon at the start of every transaction (e.g., every package update). Reading and relaying the proxy setting makes the transaction slower to start up. Further, a client may request package updates multiple times in a session. Reading and relaying the proxy setting repeatedly in a session incurs significant overhead on the management of package updates.